package sketchguided.tinysql;


import java.sql.Connection;
import java.sql.SQLException;
import java.util.Hashtable;
import java.util.Vector;

import sketch.ounit.Values;

import com.sqlmagic.tinysql.FieldTokenizer;
import com.sqlmagic.tinysql.SimpleXMLTag;
import com.sqlmagic.tinysql.dbfFileConnection;
import com.sqlmagic.tinysql.dbfFileDatabaseMetaData;
import com.sqlmagic.tinysql.dbfFileDriver;
import com.sqlmagic.tinysql.tinySQL;
import com.sqlmagic.tinysql.tinySQLDatabaseMetaData;
import com.sqlmagic.tinysql.tinySQLException;
import com.sqlmagic.tinysql.tinySQLPreparedStatement;
import com.sqlmagic.tinysql.tinySQLResultSet;
import com.sqlmagic.tinysql.tinySQLStatement;
import com.sqlmagic.tinysql.tinySQLWhere;
import com.sqlmagic.tinysql.tsResultSet;

import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;

public class TinySqlConstrainsTest extends TestCase {
	
	public static Test suite() {
		return new TestSuite(TinySqlConstrainsTest.class);
	}
	
//	public void ttest1() throws SQLException {
////	    com.sqlmagic.tinysql.dbfFileDriver var2 = new com.sqlmagic.tinysql.dbfFileDriver();
////	    boolean var4 = var2.acceptsURL("jdbc:dbfFile:.");
////	    com.sqlmagic.tinysql.dbfFileConnection var5 = new com.sqlmagic.tinysql.dbfFileConnection("", "jdbc:dbfFile:.", (java.sql.Driver)var2);
////	    tinySQL sql = var5.get_tinySQL();
////	    //sql.sqlexec()
////	    tinySQLStatement statement = new tinySQLStatement(var5);
////	    com.sqlmagic.tinysql.tinySQLDatabaseMetaData emta = new com.sqlmagic.tinysql.tinySQLDatabaseMetaData(var5);
//		com.sqlmagic.tinysql.dbfFileDriver driver = new com.sqlmagic.tinysql.dbfFileDriver();
//	    driver.acceptsURL("jdbc:dbfFile:.");
//	    com.sqlmagic.tinysql.dbfFileConnection connection = new com.sqlmagic.tinysql.dbfFileConnection("", "jdbc:dbfFile:.", driver);
//	    tinySQL sql = connection.get_tinySQL();
//	    //sql.sqlexec()
//	    tinySQLStatement statement = new tinySQLStatement(connection);
//	    com.sqlmagic.tinysql.tinySQLDatabaseMetaData meta = new com.sqlmagic.tinysql.tinySQLDatabaseMetaData(connection);
//	    dbfFileDatabaseMetaData dbfMeta = new dbfFileDatabaseMetaData(connection);
//	    tinySQLPreparedStatement stmt = new tinySQLPreparedStatement(connection, "hello?world");
//	    
////	    Values.randomFuzz(connection, dbfFileConnection.class);
////	    Values.randomFuzz(statement, tinySQLStatement.class);
////	    Values.randomFuzz(meta, tinySQLDatabaseMetaData.class);
////	    Values.randomFuzz(dbfMeta, dbfFileDatabaseMetaData.class);
////	    Values.randomFuzz(stmt, tinySQLPreparedStatement.class);
//	    
////	    connection.setSavepoint();
////	    connection.setHoldability(holdability)
////	    
////	    statement.se
////	    
////	    meta.supportsLikeEscapeClause();
////	    dbfMeta.supportsExtendedSQLGrammar();
////	    stmt.setEscapeProcessing(enable)
//	}
//	
//	
//	public void ttest2() throws Throwable {
//		com.sqlmagic.tinysql.tsResultSet set = new com.sqlmagic.tinysql.tsResultSet();
//		com.sqlmagic.tinysql.tinySQLResultSetMetaData resultSetMeta = new com.sqlmagic.tinysql.tinySQLResultSetMetaData(set);
//		//Values.randomFuzz(resultSetMeta, com.sqlmagic.tinysql.tinySQLResultSetMetaData.class);
//		
//	}
//	
//	public void test3() throws Exception {
//		Hashtable tables = new Hashtable();
//		Vector tableList = new Vector();
//		tableList.add("a");
//		tableList.add("b");
//		tables.put("TABLE_SELECT_ORDER",tableList);
//		tinySQLWhere where = new tinySQLWhere("where (shortcol = 23) and (trim(longcolum)=\"sai\")", tables);
//		//Values.randomFuzz(where, tinySQLWhere.class);
//		
//	}
//	
//	public void test4() throws Exception {
//		String str = "update TEST set shortcol='sai' where TRIM(shortcol)='hell world'";
//		com.sqlmagic.tinysql.FieldTokenizer tokener = new com.sqlmagic.tinysql.FieldTokenizer(str, ' ', false);
//		Values.randomFuzz(tokener, FieldTokenizer.class);
//		//com.sqlmagic.tinysql.tsResultSet
//	}
	
//	public void test5() throws Exception {
//		tinySQLWhere where = new tinySQLWhere(".", new SimpleXMLTag("jdbc:dbfFile:.", 4, new tsResultSet().getTables()));
//		com.sqlmagic.tinysql.dbfFileDriver driver = new com.sqlmagic.tinysql.dbfFileDriver();
//	    driver.acceptsURL("jdbc:dbfFile:.");
//	    com.sqlmagic.tinysql.dbfFileConnection connection = new com.sqlmagic.tinysql.dbfFileConnection("", "jdbc:dbfFile:.", driver);
//	    tinySQL tinysql = connection.get_tinySQL();
//		com.sqlmagic.tinysql.tsResultSet set = new com.sqlmagic.tinysql.tsResultSet(where, tinysql);
//	}
	
//	public void test6() throws Exception {
//		com.sqlmagic.tinysql.dbfFileDriver driver = new com.sqlmagic.tinysql.dbfFileDriver();
//	    driver.acceptsURL("jdbc:dbfFile:.");
//	    com.sqlmagic.tinysql.dbfFileConnection connection = new com.sqlmagic.tinysql.dbfFileConnection("", "jdbc:dbfFile:.", driver);
//		tinySQLStatement statement = new tinySQLStatement(connection);
//		tinySQL tinysql = connection.get_tinySQL();
//		tinySQLWhere where = new tinySQLWhere(".", new SimpleXMLTag("jdbc:dbfFile:.", 4, new tsResultSet().getTables()));
//		com.sqlmagic.tinysql.tsResultSet res = new com.sqlmagic.tinysql.tsResultSet(where, tinysql);
//		com.sqlmagic.tinysql.tinySQLResultSet tinysqlset = new com.sqlmagic.tinysql.tinySQLResultSet(res, statement);
//		Values.randomFuzz(tinysqlset, tinySQLResultSet.class);
//	}
	
	public void test7() throws Exception {
		for(int i = 0; i < 3000; i++) {
		com.sqlmagic.tinysql.dbfFileDriver driver = new com.sqlmagic.tinysql.dbfFileDriver();
	    driver.acceptsURL("jdbc:dbfFile:.");
	    com.sqlmagic.tinysql.dbfFileConnection connection = new com.sqlmagic.tinysql.dbfFileConnection("", "jdbc:dbfFile:.", driver);
	    tinySQL tinysql = connection.get_tinySQL();
	    String text = "SELECT * FROM TEST";
	    java.io.InputStream stream = new java.io.ByteArrayInputStream(text.getBytes("UTF-8"));
	    //com.sqlmagic.tinysql.tinySQLGlobals.
		com.sqlmagic.tinysql.tinySQLParser parser = new com.sqlmagic.tinysql.tinySQLParser(stream, tinysql);
		}
		//parser.
	}
	
	public void test8() throws Exception {
		for(int i = 0; i < 3000; i++) {
		com.sqlmagic.tinysql.dbfFileDriver driver = new com.sqlmagic.tinysql.dbfFileDriver();
	    driver.acceptsURL("jdbc:dbfFile:.");
	    com.sqlmagic.tinysql.dbfFileConnection connection = new com.sqlmagic.tinysql.dbfFileConnection("", "jdbc:dbfFile:.", driver);
	    tinySQL tinysql = connection.get_tinySQL();
	    String text = "insert into TEST (shortcol) values ('hell world')";
	    java.io.InputStream stream = new java.io.ByteArrayInputStream(text.getBytes("UTF-8"));
	    //com.sqlmagic.tinysql.tinySQLGlobals.
		com.sqlmagic.tinysql.tinySQLParser parser = new com.sqlmagic.tinysql.tinySQLParser(stream, tinysql);
		}
		//parser.
	}
	
	public void test10() throws Exception {
		com.sqlmagic.tinysql.textFileDriver driver = new com.sqlmagic.tinysql.textFileDriver();
	    driver.acceptsURL("jdbc:dbfFile:.");
		com.sqlmagic.tinysql.textFileConnection connection = new com.sqlmagic.tinysql.textFileConnection("s", "S", driver);
		tinySQL tinysql = connection.get_tinySQL();
		Values.random(tinysql, tinySQL.class);
	}
}